package com.jpsl.core.reflection.property;

import java.util.List;
import java.util.Optional;

/**
 * @author 懒王猫
 */
public interface MetaClass extends Accessible {

    /**
     * 获取所有属性名称
     */
    List<String> getProperties();

    /**
     * 是否有 getter
     *
     * @param property 属性名称
     * @return 属性名称
     */
    Optional<PropertyValueGetter> getGetter(String  property);

    /**
     * 是否有 setter
     *
     * @param property 属性名称
     * @return 属性名称
     */
    Optional<PropertyValueSetter> getSetter(String property);

}
